import { getWxSignature, getWxWorkSignature } from "@/api/openindex.js";

/**
 * 初期loadWxTicket
 * @param {Array} arr 需要使用的JS接口列表
 * @returns wx对象
 */
export function loadWxTicket(arr) {
  console.log(window.location.href.split("#")[0])
  let params = {
    url: window.location.href.split("#")[0],
  };
  return new Promise((resolve, reject) => {
    getWxSignature(params).then((res) => {
      wx.config({
        beta: true, // 必须这么写，否则wx.invoke调用形式的jsapi会有问题
        debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
        appId: res.data.appId, // 必填，公众号的唯一标识
        timestamp: res.data.timestamp, // 必填，生成签名的时间戳
        nonceStr: res.data.nonceStr, // 必填，生成签名的随机串
        signature: res.data.signature, // 必填，签名，见附录1
        jsApiList: arr, // 必填，需要使用的JS接口列表，所有JS接口列表见附录2
      }); 
      wx.ready(() => {
        wx.checkJsApi({
          jsApiList: arr, // 需要检测的JS接口列表，所有JS接口列表见附录2,
          success: function (res) {
            arr.forEach((a) => {
              resolve("调用JS方法[" + a + "]的微信tick成功！"+JSON.stringify(res));
            })
          }
        });
      })
      wx.error((err) => {
        reject("调用微信tick失败！"+JSON.stringify(err));
      });
    })
    .catch((err) => {
      reject(err)
    });
  })
}

/**
 * 初期loadWxWorkTicket
 * @param {Array} arr 
 * @returns wx对象
 */
export function loadWxWorkTicket(arr) {
  //获取当前窗口的Url
  let newUrlValue = window.location.href;
  //let newUrlValue = `${process.env.VUE_APP_DOMAIN_URL}/cr` + urlValue;
  return new Promise((resolve, reject) => {
    getWxWorkSignature({ url: newUrlValue }).then(response => {
      wx.config({
        beta: true,// 必须这么写，否则wx.invoke调用形式的jsapi会有问题
        debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
        appId: response.data.appId, // 必填，企业微信的corpID
        timestamp: response.data.timestamp, // 必填，生成签名的时间戳
        nonceStr: response.data.nonceStr, // 必填，生成签名的随机串
        signature: response.data.signature,// 必填，签名，见 附录-JS-SDK使用权限签名算法
        jsApiList: arr // 必填，需要使用的JS接口列表，凡是要调用的接口都需要传进来
      });
      wx.ready(function () {
        wx.checkJsApi({
          jsApiList: arr, // 需要检测的JS接口列表，所有JS接口列表见附录2,
          success: function (res) {
            arr.forEach((a) => {
              resolve("调用JS方法[" + a + "]的企业微信tick成功！"+JSON.stringify(res));
            })
          },
          fail:function(res){
            reject("调用企业微信tick失败2！",JSON.stringify(res));
          }
        });
      });
      wx.error(function (err) {
        reject("调用企业微信tick失败1！",JSON.stringify(err));
        // config信息验证失败会执行error函数，如签名过期导致验证失败，具体错误信息可以打开config的debug模式查看，也可以在返回的res参数中查看，对于SPA可以在这里更新签名。
      });
    }).catch((err) => {
      reject(err)
    });
  })
}
